package com.casic.common.base.service;


import com.casic.common.base.entity.PageEntity;

import java.util.List;
import java.util.Map;

/**
 *  service的基类
 * @param <T>
 */
public interface BaseService<T> {
    /**
     * 保存实体，返回实体数据
     * @param entity
     * @return
     */
     T save( T entity);

    /**
     * 保存实体
     * @param entity
     */
     void saveEntity( T entity);

    /**
     * 修改实体
     * @param entity
     * @return
     */
     T edit(T entity);

    /**
     * 删除数据(逻辑删除)
     * @param entity
     */
     void remove(T entity);

    /**
     *  批量删除(逻辑删除)
     * @param ids
     */
     void removeByIds(String[] ids);

    /**
     *  按照ID查询实体
     * @param id
     * @return
     */
     T findById(String id);

    /**
     * 分页查询数据
     * @param params
     * @return
     */
     PageEntity<T> findPage(Map<String, Object> params);

    /**
     * 按照条件查询数据
     * @param params
     * @return
     */
     List<T> findList(Map<String, Object> params);

    /**
     * 批量新增实体
     * @param list
     */
     List<T> saveBatch(List<T> list);
}
